home *** CD-ROM | disk | FTP | other *** search
/ CyberMycha 2008 January / Cybermycha 1_2008.iso / Data.cab / _447E21173F594A4BB8F129257B294A8A < prev    next >
Encoding:
Text File  |  2004-07-16  |  1.1 KB  |  64 lines

  1.  
  2. regc(0, "COMBINED_XFORM")
  3. regc(4, "MODEL_XFORM")
  4.  
  5. regc(8, "TEXTURE0_XFORM")
  6.  
  7. regc(12, "FOG_PARAMS")
  8.  
  9. regc(14, "CAMERA_POS_MS")
  10.  
  11. vshader("
  12.  
  13. #define point        v0
  14. #define normal        v1
  15. #define tangent        v2
  16. #define tcoord        v3
  17.  
  18. #define fogp    c12
  19. #define cpos    c14
  20.  
  21.     vs_1_1
  22.  
  23. #include    <cardef.h>
  24. #include    <fog.inc>
  25.  
  26.     dcl_position    point
  27.     dcl_normal        normal
  28.     dcl_tangent        tangent
  29.     dcl_texcoord    tcoord
  30.     ; output position
  31.     m4x4    oPos, point, c0
  32.     ; output texcoords
  33.     dp4    oT0.x, tcoord, c8
  34.     dp4    oT0.y, tcoord, c9
  35.     // binormal = tangent x normal
  36.     mov r0.xyz, normal
  37.     mul r1.xyz, r0.yzxw, tangent.zxyw
  38.     mad r0.xyz, r0.zxyw, tangent.yzxw, -r1
  39.  
  40.     ; output tangent -> world-space xform
  41.     dp3    oT2.x, tangent, c4
  42.     dp3    oT3.x, tangent, c5
  43.     dp3    oT4.x, tangent, c6
  44.  
  45.     dp3    oT2.y, r0, c4
  46.     dp3    oT3.y, r0, c5
  47.     dp3    oT4.y, r0, c6
  48.  
  49.     dp3    oT2.z, normal, c4
  50.     dp3    oT3.z, normal, c5
  51.     dp3    oT4.z, normal, c6
  52.  
  53.     ; E in tangent space
  54.     add    r1, cpos, -point
  55.     dp3    oT1.x, tangent, r1
  56.     dp3    oT1.y, r0, r1
  57.     dp3    oT1.z, normal, r1
  58.  
  59.     ; calc fog
  60.        dp4    r0.x, point, c2
  61.        FOG(r0.x, fogp, r10)
  62. ")
  63.  
  64.